package com.cbn.ibcp.jishiting.gs.cms.service;

import com.cbn.ibcp.common.annotation.DataSource;
import com.cbn.ibcp.common.enums.DataSourceType;
import com.cbn.ibcp.jishiting.gs.cms.domain.NodeVideo;

import java.util.Date;
import java.util.List;

public interface INodeVideoService {

    /**
     * 根据nodeId和videoId查询
     *
     * @param videoIds
     * @param nodeId
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    List<NodeVideo> getListByVideoIdList(List<Long> videoIds, Long nodeId);


    /**
     * 根据nodeId和videoId查询
     *
     * @param videoId
     * @param nodeId
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    NodeVideo getByVideoId(Long videoId, Long nodeId);


    /**
     * 根据nodeId和videoId查询
     *
     * @param assetId
     * @param nodeId
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    NodeVideo getByAssetId(String assetId, Long nodeId);

    /**
     * 获取注入统计
     *
     * @param orgCode
     * @param startTime
     * @param endTime
     * @param injectStatus
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    Integer getTotalCreateInjectStatistic(String orgCode, Date startTime, Date endTime, Integer injectStatus);

    /**
     * 获取注入失败统计
     *
     * @param orgCode
     * @param startTime
     * @param endTime
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    Integer getTotalCreateInjectFailureStatistic(String orgCode, Date startTime, Date endTime);

    /**
     * 获取更新注入统计
     *
     * @param orgCode
     * @param startTime
     * @param endTime
     * @param injectStatus
     * @return
     */
    Integer getTotalUpdateInjectStatistic(String orgCode, Date startTime, Date endTime, Integer injectStatus);


    /**
     * 获取注入失败统计
     *
     * @param orgCode
     * @param startTime
     * @param endTime
     * @return
     */
    @DataSource(DataSourceType.gs_cms)
    Integer getTotalUpdateInjectFailureStatistic(String orgCode, Date startTime, Date endTime);
}
